package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 团购兑换设置对象 group_purchase_redemption
 *
 * @author ruoyi
 * @date 2025-05-14
 */
@Data
@ApiModel("团购兑换设置")
public class GroupPurchaseRedemption extends AbdulBaseEntity {

    private static final long serialVersionUID = 1L;

    /** 团购兑换设置唯一标识符 */
    @ApiModelProperty("团购兑换设置唯一标识符")
    private Long id;

    /** 抖音账号名称（如"商家官方号"） */
    @Excel(name = "抖音账号名称")
    @ApiModelProperty("抖音账号名称")
    private String douyinAccount;

    /** 抖音账号唯一ID（由抖音平台分配） */
    @Excel(name = "抖音账号唯一ID", readConverterExp = "由=抖音平台分配")
    @ApiModelProperty("抖音账号唯一ID")
    private String douyinUid;

    /** 抖音门店名称（冗余字段，避免关联查询） */
    @Excel(name = "抖音门店名称", readConverterExp = "冗=余字段，避免关联查询")
    @ApiModelProperty("抖音门店名称")
    private String storeName;

    /** 团购活动名称（如"超值双人餐"） */
    @Excel(name = "团购活动名称")
    @ApiModelProperty("团购活动名称")
    private String activityName;

    /** 团购活动类型（餐饮/娱乐/服务） */
    @Excel(name = "团购活动类型", readConverterExp = "餐=饮/娱乐/服务")
    @ApiModelProperty("团购活动类型")
    private String activityType;

    /** 团购原价（如"198.00"） */
    @Excel(name = "团购原价")
    @ApiModelProperty("团购原价")
    private BigDecimal originalPrice;

    /** 团购折扣价（如"99.00"） */
    @Excel(name = "团购折扣价")
    @ApiModelProperty("团购折扣价")
    private BigDecimal discountedPrice;

    /** 兑换规则（如"需提前1天预约"、"仅限堂食"） */
    @Excel(name = "兑换规则")
    @ApiModelProperty("兑换规则")
    private String redemptionRule;

    /** 总库存数量（0表示无限制） */
    @Excel(name = "总库存数量", readConverterExp = "0=表示无限制")
    @ApiModelProperty("总库存数量")
    private Long totalStock;

    /** 剩余库存数量（实时更新） */
    @Excel(name = "剩余库存数量", readConverterExp = "实=时更新")
    @ApiModelProperty("剩余库存数量")
    private Long remainingStock;

    /** 每日兑换数量限制（0表示无限制） */
    @Excel(name = "每日兑换数量限制", readConverterExp = "0=表示无限制")
    @ApiModelProperty("每日兑换数量限制")
    private Long dailyLimit;

    /** 团购状态（启用/停用/已过期/已售罄） */
    @Excel(name = "团购状态", readConverterExp = "启=用/停用/已过期/已售罄")
    @ApiModelProperty("团购状态")
    private String status;

    /** 团购开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "团购开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("团购开始时间")
    private Date startTime;

    /** 团购结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "团购结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("团购结束时间")
    private Date endTime;

    /** 操作人（如"系统自动"、"管理员王五"） */
    @Excel(name = "操作人")
    @ApiModelProperty("操作人")
    private String operator;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}